import {Injectable} from '@angular/core';

/**
 * Utils类存放和业务无关的公共方法
 * @description
 */
@Injectable()
export class Utils {

    constructor() {
    }

    /**
     * 处理银行卡号
     * @param {string} number
     * @return {string}
     */
    static formatCardNumber(number: string) {
        number = number.replace(/\s/g, "");
        if (Utils.trim(number, true).length > 4 && Utils.trim(number, true).length < 9) {
            return number.substr(0, 4) + ' ' + number.substr(4);
        }
        if (Utils.trim(number, true).length >= 9 && Utils.trim(number, true).length < 13) {
            return number.substr(0, 4) + ' ' + number.substr(4, 4) + ' ' + number.substr(8);
        }
        if (Utils.trim(number, true).length >= 13 && Utils.trim(number, true).length < 17) {
            return number.substr(0, 4) + ' ' + number.substr(4, 4) + ' ' + number.substr(8, 4) + ' ' + number.substr(12);
        }
        if (Utils.trim(number, true).length >= 17) {
            return number.substr(0, 4) + ' ' + number.substr(4, 4) + ' ' + number.substr(8, 4) + ' ' + number.substr(12, 4) + ' ' + number.substr(16);
        }
        return number;
    }

    /**
     * 清除空格
     * @param str
     * @param is_global 是否替换所有空格
     * @returns {string}
     * @constructor
     */
    static trim(str, is_global = true): string {
        let result;
        result = str.replace(/(^\s+)|(\s+$)/g, "");
        if (is_global) {
            result = result.replace(/\s/g, "");
        }
        return result;
    }
}
